home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / b / b.lha / B / doc / QuickRef < prev    next >
Encoding:
Text File  |  1988-11-24  |  12.5 KB  |  686 lines

  1. .\" Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985.
  2. .so bfont.def
  3. .pl 0
  4. .ll 18c
  5. .nh
  6. .wh -.3c fo
  7. .de fo \"page footer
  8. 'bp
  9. .pl 35c
  10. .po 0
  11. .lt 21c
  12. .tl '.''.'
  13. .po 1.5c
  14. .sp 2
  15. .ns
  16. ..
  17. .ds B \fIB\fP
  18. .ds BB \fI\zB\h'3u'B\fP
  19. .de HE \"Heading
  20. .sp 0.9v
  21. .ne 1.7v
  22. \fB\\$1\fP \\$2
  23. .sp .4v
  24. .ns
  25. ..
  26. .de IT
  27. .sp .4v
  28. .JT
  29. ..
  30. .de JT
  31. .ti 0
  32. ..
  33. .de TA
  34. .br
  35. .sp -1
  36. .ti 0
  37.     
  38. ..
  39. .fo
  40. .rs
  41. .sp 2
  42. .ta 20n
  43. .ps 16
  44.     \*(BB\fB\ \|QUICK REFERENCE\fP
  45. .ps 10
  46. .sp 0.5
  47. .ta 30n
  48. .HE "GETTING STARTED"
  49. .IT
  50. \*(<:b\*(:>
  51. .TA
  52. Enter \*B system
  53. .JT
  54. \*(<:b -e\*(:>
  55. .TA
  56. Enter \*B system, using editor \fI$EDITOR\fP (default \fIvi\fP)
  57. .JT
  58. \*(<:b \*(:>\|\fIfile\fP .\^.\^.
  59. .TA
  60. Execute \*B commands in named files, and \*(<:QUIT\*(:>
  61. .JT
  62. \*(<:b -p\*(:>
  63. .TA
  64. Print all units in workspace on printer; do not enter \*B system
  65. .JT
  66. \*(<:b -l\*(:>
  67. .TA
  68. Print (list) all units on screen; do not enter \*B system
  69. .JT
  70. \*(<:b -i \*(:>\fItable\fP
  71. .TA
  72. Create a table of texts from the standard input
  73. .JT
  74. \*(<:b -o \*(:>\fItable\fP
  75. .TA
  76. Write a table of texts to the standard output
  77. .HE "WHAT IS IN THE WORKSPACE ?" " (only as immediate commands)"
  78. .IT
  79. \*(<:==\*(:>
  80. .TA
  81. Display tags of current permanent targets
  82. .JT
  83. \*(<:::\*(:>
  84. .TA
  85. Display headings of current units
  86. .HE "HOW TO MAKE CHANGES"
  87. .IT
  88. \*(<::\*(:>\fIunit-name\fP\0
  89. .TA
  90. Make changes to unit (default: unit last referred to)
  91. .JT
  92. \*(<:=\*(:>\fItarget-name\fP
  93. .TA
  94. Make changes to contents of target (last so changed)
  95. .HE "Focus moves"
  96. .ta 15n +20n
  97. .de KK \"Key(s) that preceeding name of editing operation is bound to
  98. .br
  99. .sp -1
  100. .ti 0
  101.     
  102. ..
  103. .de KY \"Key in box
  104. 'ps -2
  105. 'nh
  106. \v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\|\s-1\\$1\s+1\|\v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\\h'-\\w'|'u/2u'\l'|0+(\\w'|'u/2u)\(rn'\\h'-\\w'|'u/2u'\l'|0\(ul'
  107. 'hy
  108. 'ps +2
  109. ..
  110. .de OR
  111. \&\ or\ 
  112. ..
  113. .de DD \"Description of editing operation
  114. .br
  115. .sp -1
  116. .ti 0
  117.         
  118. ..
  119. .IT
  120. WIDEN
  121. .KK
  122. .KY f1
  123. .OR
  124. .KY ESC
  125. .KY w
  126. .DD
  127. Widen focus
  128. .JT
  129. FIRST
  130. .KK
  131. .KY f2
  132. .OR
  133. .KY ESC
  134. .KY f
  135. .DD
  136. Move focus to first contained item
  137. .JT
  138. LAST
  139. .KK
  140. .KY f3
  141. .OR
  142. .KY ESC
  143. .KY l
  144. .DD
  145. Move focus to last contained item
  146. .JT
  147. EXTEND
  148. .KK
  149. .KY f4
  150. .OR
  151. .KY ESC
  152. .KY e
  153. .DD
  154. Extend focus (usually to the right)
  155. .JT
  156. UPLINE
  157. .KK
  158. .KY f5
  159. .OR
  160. .KY ESC
  161. .KY u
  162. .DD
  163. Move focus to whole of line above
  164. .JT
  165. PREVIOUS
  166. .KK
  167. .KY f6
  168. .OR
  169. .KY ESC
  170. .KY p
  171. .DD
  172. Move focus to previous item
  173. .JT
  174. NEXT
  175. .KK
  176. .KY f7
  177. .OR
  178. .KY ESC
  179. .KY n
  180. .DD
  181. Move focus to next item
  182. .JT
  183. DOWNLINE
  184. .KK
  185. .KY f8
  186. .OR
  187. .KY ESC
  188. .KY d
  189. .DD
  190. Move focus to whole of line below
  191. .JT
  192. UP
  193. .KK
  194. .KY \(ua
  195. .DD
  196. Make new hole, move focus up
  197. .JT
  198. DOWN
  199. .KK
  200. .KY \(da
  201. .DD
  202. Make new hole, move focus down
  203. .JT
  204. LEFT
  205. .KK
  206. .KY \(<-
  207. .DD
  208. Make new hole, move focus left
  209. .JT
  210. RIGHT
  211. .KK
  212. .KY \(->
  213. .DD
  214. Make new hole, move focus right
  215. .HE "Typing and making changes"
  216. .IT
  217. \fIAny character\fP
  218. .DD
  219. Insert character before focus
  220. .JT
  221. ACCEPT
  222. .KK
  223. .KY TAB
  224. .DD
  225. Accept suggestion, focus to next hole or end of line
  226. .JT
  227. RETURN
  228. .KK
  229. .KY RETURN
  230. .DD
  231. Go to new line, or decrease indentation
  232. .JT
  233. UNDO
  234. .KK
  235. .KY BACKSPACE
  236. .DD
  237. Undo effect of last key pressed (may be repeated)
  238. .JT
  239. REDO
  240. .KK
  241. .KY ctrl-U
  242. .DD
  243. Redo last UNDOne key (may be repeated)
  244. .JT
  245. DELETE
  246. .KK
  247. .KY ctrl-D
  248. .DD
  249. Delete contents of focus (to buffer)
  250. .JT
  251. COPY
  252. .KK
  253. .KY ctrl-C
  254. .DD
  255. Copy contents of focus to buffer, or buffer to hole
  256. .HE "Other commands"
  257. .IT
  258. RECORD
  259. .KK
  260. .KY ctrl-R
  261. .DD
  262. Start/stop recording keystrokes
  263. .JT
  264. PLAY
  265. .KK
  266. .KY ctrl-P
  267. .DD
  268. Play back recorded keystrokes
  269. .JT
  270. LOOK
  271. .KK
  272. .KY ctrl-L
  273. .DD
  274. Redisplay screen
  275. .JT
  276. HELP
  277. .KK
  278. .KY ESC
  279. .KY ?
  280. .DD
  281. Display summary of keys
  282. .JT
  283. EXIT
  284. .KK
  285. .KY ctrl-X
  286. .DD
  287. Finish changes or execute command
  288. .JT
  289. \fIInterrupt\fP
  290. .KK
  291. .KY BREAK
  292. .OR
  293. .KY DEL
  294. .DD
  295. Leave incomplete unit or interrupt command execution
  296. .bp
  297. .rs
  298. .sp 2c
  299. .ta 35n +5n
  300. .HE "COMMANDS" " (\fItlt\fP is text, list or table)"
  301. .IT
  302. \*(<:WRITE\*(:> \fIexpr\fP\0
  303. .TA
  304. Write to terminal; \*(<:/\*(:> before or after \fIexpr\fP gives new line
  305. .JT
  306. \*(<:READ\*(:> \fItarget\fP \*(<:EG\*(:> \fIexpr\fP\0
  307. .TA
  308. Read expression from terminal to \fItarget\fP; \fIexpr\fP is example
  309. .JT
  310. \*(<:READ\*(:> \fItarget\fP \*(<:RAW\*(:>\0
  311. .TA
  312. Read line of text
  313. .JT
  314. \*(<:PUT\*(:> \fIexpr\fP \*(<:IN\*(:> \fItarget\fP
  315. .TA
  316. Put value of \fIexpr\fP in \fItarget\fP
  317. .JT
  318. \*(<:DRAW\*(:> \fItarget\fP\0
  319. .TA
  320. Random number from \*(<:~0\*(:> up to, but not including, \*(<:~1\*(:>
  321. .JT
  322. \*(<:CHOOSE\*(:> \fItarget\fP \*(<:FROM\*(:> \fItlt\fP\0
  323. .TA
  324. Random element of \fItlt\fP
  325. .JT
  326. \*(<:SET'RANDOM\*(:> \fIexpr\fP\0
  327. .TA
  328. Start random sequence for \*(<:DRAW\*(:> and \*(<:CHOOSE\*(:>
  329. .JT
  330. \*(<:REMOVE\*(:> \fIexpr\fP \*(<:FROM\*(:> \fIlist\fP\0
  331. .TA
  332. Remove one element from \fIlist\fP
  333. .JT
  334. \*(<:INSERT\*(:> \fIexpr\fP \*(<:IN\*(:> \fIlist\fP\0
  335. .TA
  336. Insert in right place
  337. .JT
  338. \*(<:DELETE\*(:> \fItarget\fP\0
  339. .TA
  340. Delete permanent target or table entry
  341. .JT
  342. \fIKEYWORD param KEYWORD\fP .\^.\^.
  343. .TA
  344. Execute user-defined command
  345. .JT
  346. \fIKEYWORD\fP
  347. .TA
  348. Execute refined command
  349. .JT
  350. \*(<:CHECK\*(:> \fItest\fP\0
  351. .TA
  352. Check \fItest\fP and stop if it fails
  353. .JT
  354. \*(<:IF\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP
  355. .TA
  356. If \fItest\fP succeeds, execute \fIcommands\fP; no \*(<:ELSE\*(:> allowed
  357. .JT
  358. \*(<:SELECT:\*(:>
  359. .TA
  360. Select one alternative:
  361. .JT
  362. \*(<:    \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP
  363. .TA
  364. \&     try each \fItest\fP in order
  365. .JT
  366. \*(<:    \*(:>.\^.\^.
  367. .TA
  368. \&     (one must succeed;
  369. .JT
  370. \*(<:    \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP\0
  371. .TA
  372. \&     the last \fItest\fP may be \*(<:ELSE\*(:>)
  373. .JT
  374. \*(<:WHILE\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP
  375. .TA
  376. Execute \fIcommands\fP, as long as \fItest\fP succeeds
  377. .JT
  378. \*(<:FOR\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP\*(<::\*(:> \fIcommands\fP\0
  379. .TA
  380. Take each element of \fItlt\fP in turn
  381. .HE "UNITS"
  382. .IT
  383. \*(<:HOW'TO\*(:> \fIKEYWORD\fP\ .\^.\^.\*(<::\*(:> \fIcommands\fP\0
  384. .TA
  385. Define new command \fIKEYWORD\fP\ .\^.\^.
  386. .JT
  387. \*(<:YIELD\*(:> \fIf\fP\*(<::\*(:> \fIcommands\fP\0
  388. .TA
  389. Define new function \fIf\fP with no arguments
  390. .JT
  391. \*(<:YIELD\*(:> \fIf x\fP\*(<::\*(:> \fIcommands\fP\0
  392. .TA
  393. Define new function \fIf\fP with one argument \fIx\fP
  394. .JT
  395. \*(<:YIELD\*(:> \fIx f y\fP\*(<::\*(:> \fIcommands\fP\0
  396. .TA
  397. Define new function \fIf\fP with two arguments \fIx\fP and \fIy\fP
  398. .JT
  399. \*(<:TEST\*(:> \fIpr\fP\*(<::\*(:> \fIcommands\fP\0
  400. .TA
  401. Define new predicate \fIpr\fP (succeeds/fails) with no arguments
  402. .JT
  403. \*(<:TEST\*(:> \fIpr x\fP\*(<::\*(:> \fIcommands\fP\0
  404. .TA
  405. Define new predicate \fIpr\fP with one argument \fIx\fP
  406. .JT
  407. \*(<:TEST\*(:> \fIx pr y\fP\*(<::\*(:> \fIcommands\fP\0
  408. .TA
  409. Define new predicate \fIpr\fP with two arguments \fIx\fP and \fIy\fP
  410. .IT
  411. \*(<:SHARE\*(:> \fItag\fP\*(<:,\*(:>.\^.\^.
  412. .TA
  413. Share permanent targets (before commands of unit)
  414. .HE "Refinements" "(after the commands of a unit)"
  415. .IT
  416. \fIKEYWORD\fP \*(<::\*(:> \fIcommands\fP\0
  417. .TA
  418. Define command refinement
  419. .JT
  420. \fItag\fP\*(<::\*(:> \fIcommands\fP\0
  421. .TA
  422. Define expression or test refinement
  423. .HE "Terminating commands" ""
  424. .IT
  425. \*(<:QUIT\*(:>\0
  426. .TA
  427. Leave \*(<:HOW'TO\*(:> or command refinement, or leave \*B
  428. .JT
  429. \*(<:RETURN\*(:> \fIexpr\fP\0
  430. .TA
  431. Leave \*(<:YIELD\*(:> or expression refinement and return value of \fIexpr\fP
  432. .JT
  433. \*(<:REPORT\*(:> \fItest\fP\0
  434. .TA
  435. Leave \*(<:TEST\*(:> or test refinement and report outcome of \fItest\fP
  436. .JT
  437. \*(<:SUCCEED\*(:>\0
  438. .TA
  439. The same, report success
  440. .JT
  441. \*(<:FAIL\*(:>\0
  442. .TA
  443. The same, report failure
  444. .bp
  445. .rs
  446. .sp 2c
  447. .HE "EXPRESSIONS AND TARGETS" ""
  448. .IT
  449. \*(<:666\*(:>, \*(<:3.14\*(:>\0
  450. .TA
  451. Exact constant
  452. .IT
  453. \*(<:2.93E8\*(:>,\  \*(<:3E+8\*(:>,\  \*(<:3.14E-9\*(:>\0
  454. .TA
  455. Approximate constant
  456. .IT
  457. \fIexpr\fP\*(<:,\*(:>\fIexpr\fP\*(<:,\*(:>\^.\^.\^.\0
  458. .TA
  459. Compound
  460. .IT
  461. \fItag\fP\*(<:,\*(:>\fItag\fP\*(<:,\*(:>\^.\^.\^.\0
  462. .TA
  463. Identifier (may also be used as target)
  464. .IT
  465. \fItext\fP\|\*(<:@\*(:>\|\fIp\fP\0
  466. .TA
  467. \&\*(<:"ABCD"@2 = "BCD"\*(:>
  468. .\"Trimmed text, from \fIp\fP-th character on (also target)
  469. .IT
  470. \fItext\fP\*(<:|\*(:>\fIq\fP\0
  471. .TA
  472. \&\*(<:"ABCD"|3 = "ABC"\*(:>
  473. .\"The same, first \fIq\fP characters (also target)
  474. .IT
  475. \fItext\fP\|\*(<:@\*(:>\|\fIp\fP\*(<:|\*(:>\fIq\fP\0
  476. .TA
  477. \&\*(<:"ABCD"@2|1 = "BCD"|1 = "B"\*(:>
  478. .\"The same, from \fIp\fP-th on, first \fIq\fP characters (also target)
  479. .IT
  480. \fItable\fP\*(<:[\*(:>\fIexpr\fP\*(<:]\*(:>\0
  481. .TA
  482. Table selection (also target)
  483. .IT
  484. \&\*(<:"Jan"\*(:>,\  \*(<:"Feb"\*(:>,\  \*(<:"Won't!"\*(:>\0
  485. .TA
  486. Textual displays (empty: \*(<:""\*(:> or \*(<:''\*(:>)
  487. .IT
  488. \&\*(<:"value\ =\ `expr`;"\*(:>\0
  489. .TA
  490. Conversion of \*(<:expr\*(:> to text
  491. .IT
  492. \*(<:{1;\ 2;\ 2;\*(:>\ .\^.\^.\^\*(<:}\*(:>\0
  493. .TA
  494. List display (empty: \*(<:{}\*(:>)
  495. .IT
  496. \*(<:{1..10}\*(:>,\  \*(<:{'a'..'z'}\*(:>\0
  497. .TA
  498. List of consecutive values
  499. .IT
  500. \*(<:{['Jan']: 1; ['Feb']: 2; \*(:>.\^.\^.\^\*(<:}\*(:>\0
  501. .TA
  502. Table display (empty: \*(<:{}\*(:>)
  503. .IT
  504. \fIf\fP,\  \fIf x\fP,\  \fIx f y\fP\0
  505. .TA
  506. Result of \*(<:YIELD\*(:> \fIf\fP (no permanent effects)
  507. .IT
  508. \fItag\fP\0
  509. .TA
  510. Result of refinement (no permanent effects)
  511. .HE "TESTS" ""
  512. .IT
  513. \fIx\fP \*(<:<\*(:> \fIy\fP,\  \fIx\fP \*(<:<=\*(:> \fIy\fP,\  \fIx\fP \*(<:>=\*(:> \fIy\fP,\  \fIx\fP \*(<:>\*(:> \fIy\fP\0
  514. .TA
  515. Order tests
  516. .IT
  517. \fIx\fP \*(<:=\*(:> \fIy\fP,\  \fIx\fP \*(<:<>\*(:> \fIy\fP
  518. .TA
  519. \&     (\*(<:<>\*(:> means `not equals';
  520. .IT
  521. \&\*(<:0\ <=\ d\ <\ 10\*(:>\0
  522. .TA
  523. \&     an exact number \fInever\fP equals an approximate one)
  524. .IT
  525. \fIpr\fP,\  \fIpr x\fP,\  \fIx pr y\fP\0
  526. .TA
  527. Result of \*(<:TEST\*(:> \fIpr\fP (no permanent effects)
  528. .IT
  529. \fItag\fP\0
  530. .TA
  531. Result of refinement (no permanent effects)
  532. .IT
  533. \fItest\fP\ \*(<:AND\*(:>\ \fItest\fP\ \*(<:AND\*(:>\ .\^.\^.\0
  534. .TA
  535. Fails as soon as one of the tests fails
  536. .IT
  537. \fItest\fP\ \*(<:OR\*(:>\ \fItest\fP\ \*(<:OR\*(:>\ .\^.\^.\0
  538. .TA
  539. Succeeds as soon as one of the tests succeeds
  540. .IT
  541. \*(<:NOT\*(:>\ \fItest\fP
  542. .IT
  543. \*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
  544. .TA
  545. Sets \fItag\fP, .\^.\^. on success
  546. .IT
  547. \*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
  548. .TA
  549. Sets \fItag\fP, .\^.\^. on failure
  550. .IT
  551. \*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0
  552. .TA
  553. Sets \fItag\fP, .\^.\^. on failure
  554. .IT
  555. \*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
  556. .TA
  557. Sets \fItag\fP, .\^.\^. on success
  558. .IT
  559. \*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
  560. .TA
  561. Sets \fItag\fP, .\^.\^. on failure
  562. .IT
  563. \*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0
  564. .TA
  565. Sets \fItag\fP, .\^.\^. on failure
  566. .bp
  567. .rs
  568. .sp 2c
  569. .HE "PREDEFINED FUNCTIONS AND PREDICATES"
  570. \fBFunctions on numbers\fP
  571. .IT
  572. \&\*(<:~\*(:>\fIx\fP\0
  573. .TA
  574. Approximate value of \fIx\fP
  575. .IT
  576. \*(<:+\*(:>\fIx\fP,\  \fIx\fP\*(<:+\*(:>\fIy\fP,\  \fIx\fP\*(<:-\*(:>\fIy\fP,\  \*(<:-\*(:>\fIx\fP,\  \fIx\fP\*(<:*\*(:>\fIy\fP,\  \fIx\fP\*(<:/\*(:>\fIy\fP
  577. .IT
  578. \fIx\fP\*(<:**\*(:>\fIy\fP\0
  579. .TA
  580. \fIx\fP raised to the power \fIy\fP
  581. .IT
  582. \fIn\fP\ \*(<:root\*(:>\ \fIx\fP,\  \*(<:root\*(:>\ \fIx\fP,\  \*(<:abs\*(:>\ \fIx\fP,\  \*(<:sign\*(:>\ \fIx\fP
  583. .IT
  584. \fIn\fP\ \*(<:round\*(:>\ \fIx\fP\0
  585. .TA
  586. \fIx\fP rounded to \fIn\fP digits after decimal point
  587. .IT
  588. \*(<:round\*(:>\ \fIx\fP,\ \*(<:floor\*(:>\ \fIx\fP,\  \*(<:ceiling\*(:>\ \fIx\fP
  589. .TA
  590. Rounded to whole number
  591. .IT
  592. \fIa\fP\ \*(<:mod\*(:>\ \fIn\fP\0
  593. .TA
  594. Remainder of \fIa\fP on division by \fIn\fP
  595. .IT
  596. \*(<:*/\*(:>\fIx\fP\0
  597. .TA
  598. Numerator of exact number \fIx\fP
  599. .IT
  600. \*(<:/*\*(:>\fIx\fP\0
  601. .TA
  602. Denominator
  603. .IT
  604. .in 0
  605. \&\*(<:e\*(:>,\  \*(<:exp\*(:>\ \fIx\fP,\  \*(<:log\*(:>\ \fIx\fP,\  \fIb\fP\ \*(<:log\*(:>\ \fIx\fP
  606. .IT
  607. \*(<:pi\*(:>,\ \*(<:sin\*(:>\ \fIx\fP,\  \*(<:cos\*(:>\ \fIx\fP,\  \*(<:tan\*(:>\ \fIx\fP
  608. .IT
  609. \fIx\fP\ \*(<:atan\*(:>\ \fIy\fP,\  \*(<:atan\*(:>\ \fIx\fP
  610. .HE "Functions on texts"
  611. .IT
  612. \fIt\fP\*(<:^\*(:>\fIu\fP\0
  613. .TA
  614. \fIt\fP and \fIu\fP joined into one text
  615. .IT
  616. \fIt\fP\*(<:^^\*(:>\fIn\fP\0
  617. .TA
  618. \fIt\fP repeated \fIn\fP times
  619. .IT
  620. \fIx\fP\*(<:<<\*(:>\fIn\fP\0
  621. .TA
  622. \fIx\fP converted\ to\ text\ and\ aligned\ left\ in\ field\ of\ width\ \fIn\fP
  623. .IT
  624. \fIx\fP\*(<:><\*(:>\fIn\fP\0
  625. .TA
  626. The same,\ centered
  627. .IT
  628. \fIx\fP\*(<:>>\*(:>\fIn\fP\0
  629. .TA
  630. The same, aligned right
  631. .HE "Functions and predicates on texts, lists and tables"
  632. .IT
  633. \*(<:keys\*(:> \fItable\fP
  634. .TA
  635. List of all keys in \fItable\fP
  636. .IT
  637. \*(<:#\*(:>\fItlt\fP\0
  638. .TA
  639. Number of elements in \fItlt\fP
  640. .IT
  641. \fIe\fP\*(<:#\*(:>\fItlt\fP\0
  642. .TA
  643. Number of elements equal to \fIe\fP
  644. .IT
  645. \fIe\fP \*(<:in\*(:> \fItlt\fP,\  \fIe\fP \*(<:not'in\*(:> \fItlt\fP
  646. .TA
  647. Test for presence or absence
  648. .IT
  649. \*(<:min\*(:> \fItlt\fP\0
  650. .TA
  651. Smallest element of \fItlt\fP
  652. .IT
  653. \fIe\fP \*(<:min\*(:> \fItlt\fP\0
  654. .TA
  655. Smallest element larger than \fIe\fP
  656. .IT
  657. \*(<:max\*(:> \fItlt\fP,\  \fIe\fP \*(<:max\*(:> \fItlt\fP
  658. .TA
  659. Largest element
  660. .IT
  661. \fIn\fP \*(<:th'of\*(:> \fItlt\fP\0
  662. .TA
  663. \fIn\fP-th element
  664. .HE "THE CHARACTERS"
  665. .IT
  666. \*(<: !"#$%&'()*+,-./\*(:>
  667. .TA
  668. This is the order of all characters
  669. .JT
  670. \*(<:0123456789:;<=>?\*(:>
  671. .TA
  672. that may occur in a text.
  673. .JT
  674. \*(<:@ABCDEFGHIJKLMNO\*(:>
  675. .TA
  676. (The first is a space.)
  677. .JT
  678. \*(<:PQRSTUVWXYZ[\\]^_\*(:>
  679. .JT
  680. \*(<:`abcdefghijklmno\*(:>
  681. .JT
  682. \*(<:pqrstuvwxyz{|}~\*(:>
  683. .bp
  684. .pl 0
  685. .ch fo
  686.